<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <h1>computed---{{ reverseStr }}</h1>
        <p>计算属性：依赖缓存，当计算结果不变时，会将结果缓存起来，方便下次使用。
            使用场景：计算过程比较复杂，而且会在页面中多次展示</p>
        <hr>
        <p>总价格：{{totalPrice}}</p>
        <p>总价格：{{totalPrice}}</p>
        <p>总价格：{{totalPrice}}</p>
        <p>总价格：{{totalPrice}}</p>
    </div>
    <script src="../vue.js"></script>
    <script>
        let vm = new Vue({
            el: '#app',
            data: {
                msg: 'hello',
                carts: [
                    {name: 'iphone 13', price: 5000, num: 2},
                    {name: 'mac book pro', price: 14999, num: 5}
                ]
            },
            // 计算属性：用来做计算的一个属性
            computed: {
                reverseStr() {
                    let res = '';
                    res = this.msg.split('').reverse().join('');
                    return res
                },
                totalPrice() {
                    console.log('computed');
                    let n = 0;
                    for (let i = 0; i < this.carts.length; i++) {
                        n += this.carts[i].price * this.carts[i].num;
                    }
                    return n
                }
            }
        })
    </script>
</body>
</html>